<html>
<head>
  <title>Devcathlon: Help</title>
  <link rel="stylesheet" type="text/css" href="style/boilerplate/chrometheme/chromestyle2.css" />

  <script type="text/javascript" src="style/boilerplate/chromejs/chrome.js">

  /***********************************************
  * Chrome CSS Drop Down Menu- (c) Dynamic Drive DHTML code library (www.dynamicdrive.com)
  * This notice MUST stay intact for legal use
  * Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
  ***********************************************/

  </script>
  
  <link rel="stylesheet" type="text/css" href="style/boilerplate/screen.css" media="screen" />
  <link rel="stylesheet" type="text/css" href="style/boilerplate/print.css" media="print" />
  <style>
    .entry {border-top: 1px solid #3366CC; margin-top: 1px;}
  </style>
</head>

<body>
  <div id="page"> 
    <div id="header">
      <div align="right" style="margin-top: -100px;"><img src="logo.jpg"></div>
      <div class="chromestyle" id="chromemenu">
      <ul>
        <li><a href="index.loggedin.html">Home Page</a></li>
        <li><a href="myprofile.html" rel="profiledrop">My Profile</a></li>
        <li><a href="browseProfiles.html">Browse Profiles</a></li>
        <li><a href="#" rel="dropmenu1">Matches</a></li>
        <li><a href="gallery.html">Gallery</a></li>
        <li><a href="#" rel="dropmenu2">Hall of Fame</a></li>
        <li><a href="#" rel="dropmenu3">Help</a></li>        
        <li><a href="">         </a></li>
        <li><a href="index.html">Logout!</a></li> 
      </ul>      
    </div>
    
<!--Drop down menu for My Profile -->                                                   
<div id="profiledrop" class="dropmenudiv">
  <a href="editProfile.html">Edit Profile</a>
  <a href="myteams.html">My Teams</a>
  <a href="mymatches.html">My Matches</a>
</div>

<!--1st drop down menu -->                                                   
<div id="dropmenu1" class="dropmenudiv">
  <a href="publicMatches.html">Public Matches</a>
  <a href="mymatches.html">My Matches</a>
</div>

<!--2nd drop down menu -->                                                
<div id="dropmenu2" class="dropmenudiv" style="width: 150px;">
  <a href="topTeams.html">Top Teams</a>
  <a href="TopIndividuals.html">Top Individuals</a>
</div>

<!--3rd drop down menu -->                                                   
<div id="dropmenu3" class="dropmenudiv" style="width: 150px;">
  <a href="help.html">FAQ</a>
  <a href="contact.html">Contact Info</a>
</div>

<script type="text/javascript">

  cssdropdown.startchrome("chromemenu")

</script>

<!-- -------------- Page contents begins --------------- -->


<div class="wrapper">

<h2>Help</h2>
<p>
<ul>
<li><a href="#whatisdevcathlon">What is Devcathlon?</a>
<li><a href="#registration">How do I register to play?</a>
<li><a href="#events">What are Devcathlon events?</a>
<li><a href="#choosingEvents">Can I choose what events to participate in?</a>
<li><a href="#configuringEvents">Can I configure an event?</a>
<li><a href="#match">What is a match?</a>
</ul>
</p>

<div class="entry">
<h3 id="whatisdevcathlon">What is Devcathlon?</h3>
<p>
Devcathlon is a web application that re-interprets actual software development as a "game".  When 
playing Devcathlon, you develop software either individually or as a group just as you would 
in "real life".  The difference is that software sensors attached to your development tools are
unobtrusively monitoring your activities and sending data about how you and your team mates
perform development to a central repository.  (The Hackystat system provides this infrastructure.)
</p>
<p>
The Devcathlon game provides a set of "events", which are basically rules for good and bad 
software development practice.  For example, a software system that has over 90% coverage
is generally considered "good" (with respect to test coverage), while a software system that has less than
10% coverage is generally considered "bad" (with respect to test coverage).  For another example, the 
adage "Commit early, commit often" implies that good software development practice involves 
commiting files soon after they have been created, and to not edit an existing committed file 
for long periods of time without committing it.  Devcathlon events reward teams whose software
exhibits desirable properties (such as high coverage) and whose development behaviors conform
to good practices (such as commit early, commit often). 
<p> 

<p>
Devcathlon contrasts in interesting ways with other systems that make a game or contest from
programming:
<ul>
<li><p>
<a href="http://www.topcoder.com/">Top Coder</a> is a company that administers computer
programming contests.  The contests range in time from very short (two hours for algorithms)
to as much as one or two weeks for "marathon" matches.   The company awards cash prizes to 
winners.  The focus is generally on individuals completing small systems as quickly as possible. Quality is
defined in terms of test cases.   In contrast, Devcathlon places more emphasis on the process
of development, which allows groups to compete against each other even if they are working on very
different types of software. 
</p></li>

<li><p>
<a href="http://www.javablackbelt.com/">Java Black Belt</a> is a site that enables programmers
to earn belts in a progression of colors by passing true-false and multiple-choice exams. 
In contrast to Devcathlon, it does not evaluate programmers based upon their actual programming.  
</p></li>

<li><p>
<a href="http://score.elet.polimi.it/index.html">SCORE (Student Contest in Software Engineering)</a>
is a contest sponsored through the International Conference on Software Engineering that enables
groups of students to work on a variety of projects which will be judged on "the quality of the 
software engineering processes followed, as well as the outcome."  
In contrast to Devcathlon, evaluation of processes and products is done in a subjective manner
by judges who look at reports submitted by teams.  
</p></li>

<li><p>
<a href="http://www.ics.uci.edu/~emilyo/SimSE/">SimSE</a>
is a simulation environment that allows individual students to practice a "virtual" software engineering 
process in a graphical environment.  
In contrast, Devcathlon allows students to work in teams and gain points from "real" software
development activities. 
</p></li>
</ul>
</div> 

<div class="entry">
<h3 id="registration">How do I register to play?</h3>
<p>
Devcathlon scores are computed from analysis of <a href="http://www.hackystat.org/">Hackystat</a> sensor data
retrieved from the public Hackystat server.  
Therefore, to register to play Devcathlon, you should go to the <a href="http://dasha.ics.hawaii.edu:9879/projectbrowser/">Public Hackystat ProjectBrowser</a> and 
fill out the "Register" form to set up an account on the public Hackystat server.  
</p>
<p>
You will also need to <a href="http://code.google.com/p/hackystat/wiki/Tutorial_SensorDataCollection">set up sensor data collection</a> 
and probably <a href="http://code.google.com/p/hackystat/wiki/Tutorial_Projects">define a Hackystat project</a>. 
</p> 
<p>
Unlike other software engineering competitions, Devcathlon is based upon observation of your actual behaviors during 
development.  This involves a little more initial setup, but the benefits are that your points are
based upon objective evaluations of your actual software development activities and the software
produced. 
</p>
</div>

<div class="entry">
<h3 id="events">What are Devcathlon events?</h3>
<p>
Each Devcathlon event evaluates a single kind of software development process or product behavior. 
For example, the "Keep the coverage high" event evaluates the coverage associated with a software
project and awards points if it stays above a certain threshold and deducts points if it falls below 
a certain threshold. 
</p>
<p>
Events can be configured for a match. For example, participants in a match
can decide for themselves what thresholds should be used to trigger point awards or deductions,
as well as how many points to award. 
</div>


<div id="footerFeedback">
This is the Help page, which is globally available from all pages. We might want to make this 
a link to a help page within google project hosting, such as <a href="http://code.google.com/p/hackystat-ui-devcathlon/wiki/Help">here</a>.
</div>

</div> <!-- End id=page -->

</body>
</html>
